package com.zshan.clinic.admin.mapper.config;


import com.zshan.clinic.admin.entity.vo.*;
import com.zshan.clinic.mybatis.SuperMapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface SpecClinicFeeMapper extends SuperMapper {

    /**
     * 查询收费列表数量
     * @param clinicId
     * @param doctorName
     * @param deptId
     * @return
     */
    Long getDoctorFeeCount(@Param("clinicId") Long clinicId,
                           @Param("doctorName") String doctorName,
                           @Param("deptId") Long deptId);

    /**
     * 查询收费列表
     * @param clinicId
     * @param doctorName
     * @param deptId
     * @param offset
     * @param limit
     * @return
     */
    List<ClinicDoctorFeeVo> getDoctorFeeList(@Param("clinicId") Long clinicId,
                                             @Param("doctorName") String doctorName,
                                             @Param("deptId") Long deptId,
                                             @Param("offset") Integer offset,
                                             @Param("limit") Integer limit);

    /**
     * 检查项目收费列表总数
     * @param projectCategory
     * @param projectName
     * @param deptId
     * @return
     */
    Long getProjectFeeCount(@Param("clinicId") Long clinicId,
                            @Param("projectCategory") String projectCategory,
                            @Param("projectType") String projectType,
                            @Param("projectName") String projectName,
                            @Param("deptId") Long deptId);

    /**
     * 检查项目收费列表
     * @param projectCategory
     * @param projectName
     * @param deptId
     * @param offset
     * @param limit
     * @return
     */
    List<ClinicProjectFeeVo> getProjectFeeList(@Param("clinicId") Long clinicId,
                                               @Param("projectCategory") String projectCategory,
                                               @Param("projectType") String projectType,
                                               @Param("projectName") String projectName,
                                               @Param("deptId") Long deptId,
                                               @Param("offset") Integer offset,
                                               @Param("limit") Integer limit);

    /**
     * 检查项目收费列表-模板选择项目用
     * @param clinicId
     * @param projectCategoryList
     * @param projectType
     * @param projectName
     * @return
     */
    List<ClinicProjectFeeStandardVo> getFeeStandardList(@Param("clinicId") Long clinicId,
                                                        @Param("projectCategoryList") List<String> projectCategoryList,
                                                        @Param("projectType") String projectType,
                                                        @Param("projectName") String projectName);

    /**
     * 获取诊所全部收费项目
     * @param clinicId
     * @return
     */
    List<ClinicProjectCategoryVo> getAllFeeList(@Param("clinicId") Long clinicId);

    /**
     * 获取医生下拉框
     * @param clinicId
     * @return
     */
    List<ClinicDoctorSelectVo> getSelectList(@Param("clinicId") Long clinicId);

}
